package cn.tedu.sp04.feign;

import cn.tedu.sp01.pojo.Item;
import cn.tedu.web.util.JsonResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 配置：
 * 1.调用哪个服务  02，03
 * 2.调用哪个路径
 * 3.提交什么参数
 * Feign集成了Ribbon，Ribbon提供了负载均衡和重试功能
 * Fegin默认启动负载均衡和重试
 * Ribbon重试
 *    向后服务调用时出错（异常，超时），会自动重试调用
 *    重试参数：
 *      MaxAutoRetries-单台服务器重试次数
 *      MaxAutoRetriesNextServer-更换服务器的次数
 *    */
//item-service----localhost:8001,localhost:8002
@FeignClient("item-service")
public interface ItemClient {
    //这里是调用路径，contorller层中的是发起
    @GetMapping("/{orderId}")
    JsonResult<List<Item>> getItems(@PathVariable("orderId") String orderId);
    @PostMapping("/decreaseNumber")
    JsonResult<?> decreaseNumber(@RequestBody List<Item> items);
}
